GNU makefile

CROSS COMPILE을 수행하는데 크게 3가지 방법이 사용된다.
1. make 변수 CROSS_COMPILE로 제어되는 순수한 makefile
2. Autotools
3. CMake
makefile
make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf-
of
export CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf-
make
autotools
sudo apt install autotools
sudo apt install automake
sudo apt install libtool
sudo apt install make

./configure        ; 소스파일에 대한 환경설정 수행(서버환경에 맞게 makefile 생성); or build 환경 검사 및 생성
# ./configure --prefix=/usr/local/<name>;    파일 설치할 위치 지정
(configure 내용 초기화: make distclean)
make    ; 소스 컴파일(makefile은 컴파일 할 조건(ex Link 여부, 의존성)등을 설명함
(make 과정 초기화: make clean)
make install    ; make를 통해 생성된 설치파일(setup)을 설치하는 과정; 머신 디렉토리로 복사
(make install 초기화: make uninstall)

pkg-config <binary> --libs --cflags
PREFIX?=/usr/local
INSTALL_BIN=$(PREFIX)/bin
INSTALL=install
PKG_CONFIG?=pkg-config
all: $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME)
@echo ""
@echo "Hint: It's a good idea to run 'make test' ;)"
@echo ""
install: all
@mkdir -p $(INSTALL_BIN)
$(call MAKE_INSTALL,$(REDIS_SERVER_NAME),$(INSTALL_BIN))
$(call MAKE_INSTALL,$(REDIS_BENCHMARK_NAME),$(INSTALL_BIN))
$(call MAKE_INSTALL,$(REDIS_CLI_NAME),$(INSTALL_BIN))
@ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_RDB_NAME)
@ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_AOF_NAME)
@ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME)